<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>5-认识promise</title>
</head>
<body>
    <h2>认识promise状态</h2>
    <script>
        /*
           Promise 的状态
           1. 待定（pending）：初始（默认）状态，既没有被兑现，也没有被拒绝   实例化
           2. 已兑现（fulfilled）：意味着操作  【成功】  完成 resolve ->then
           3. 已拒绝（rejected）：意味着操作   【失败】       reject -> catch

           Promise对象的状态发生改变之后，无法再次改变
        */
        // 1. 实例化 Promise 对象 pending 待定
        const p = new Promise((resolve, reject) => {
            // 2. 执行异步操作，并传递结果
            setTimeout(() => {
                // fulfilled
                
                // p.fulfilled
                
                reject('啊啊啊！怎么失败了呢')
                resolve('我成功了，哈哈哈')
                // resolve('我又成功了，哈哈哈')
                // 成功 resolve -> then
                
                // 失败 reject -> catch
                
            },1000)
        })
        // 3.接收结果
        p.then(res => {
            console.log(res)
        }).catch(err => {
            console.log(err)
        })
    </script>
</body>
</html>